home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
TPUG Xtras
/
Unreleased
/
(c)aaa.d64
/
monopoly4.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-02-07
|
30KB
|
903 lines
100 REM MONOPOLE CBM-64
125 REM COPYRIGH3 (C) 1982 BY
126 REM TIM BORION & SAL OEPER-8/12/82
130 PRINT"[147]":POKE53280,0:POKE53281,0:CLR:GOSUB1590
140 PG$=" PURPLE, LT. BLUE, MAROON, ORANGE, RED, YELLOW, GREEN, DK. BLUE"
150 DIMPN$(42),D(42,3),CH$(16),CC$(16),P(42,9),PT$(42),C$(42),PS(42),H(42),MG(42)
160 DIM P$(4),PL(4),O(4),JT(4),M(4),CJ(4),PQ(4),N$(4)
170 GOSUB320
172 INPUT"RESTART A SAVED GAME (Y/N)";KK$
173 IF KK$="Y" THEN GOSUB 9100
174 IF RS=1 THEN 200
180 INPUT"WANT FREE PARKING JACKPOT OPTION ";Q$:IFLEFT$(Q$,1)="Y"THENPF=1:FP=500
182 INPUT "# OF PLAYERS (2-4)";KK
184 IF KK<2 OR KK>4 THEN 182
186 IF KK=2 THEN PQ(3)=2:PQ(4)=2
187 IF KK=3 THEN PQ(4)=2
190 M(1)=1500:M(2)=1500:PL(1)=1:PL(2)=1:DV=2
191 IF PQ(3)=0 THEN M(3)=1500:PL(3)=1
192 IF PQ(4)=0 THEN M(4)=1500:PL(4)=1
200 CD$="":CR$=""
210 ZQ=RND(-TI):X1=8:Y1=10:X2=23:Y2=10:RX=6:RY=18:TN=832:TT=886
220 E$=" [146]":RM$="HIT 'R' OR 'T'[146]":IF RS=1 THEN 230
221 FOR QQ=1TO4
222 IF PQ(QQ)<>0 THEN 225
223 PRINT"ENTER NAME FOR PLAYER #";QQ;
224 INPUT N$(QQ)
225 IF N$(QQ)="" THEN N$(QQ)="PLAYER "+STR$(QQ)
226 IF LEN(N$(QQ))>10 THEN N$(QQ)=MID$(N$(QQ),1,10)
227 IF LEN(N$(QQ))<10 THEN N$(QQ)=N$(QQ)+MID$(" ",1,10-LEN(N$(QQ)))
228 NEXT QQ
230 PRINT"[147][159] PLEASE WAIT WHILE I SET UP."
240 FORI=1TO4:P(6+((I-1)*10),8)=100:NEXT:P(13,8)=75:P(29,8)=75
250 CH=INT(RND(1)*16)+1:CC=INT(RND(1)*16)+1
260 FORI=1TO41:FORJ=0TO1:READD(I,J):NEXT:NEXT
265 FORI=1TO41:FORJ=2TO3:READD(I,J):NEXT:NEXT
270 P$(1)=""+N$(1)+"[146]":P$(2)=""+N$(2)+"[146]"
275 P$(3)=""+N$(3)+"[146]":P$(4)=""+N$(4)+"[146]"
280 FORI=1TO41:READPN$(I):NEXT:FORI=1TO41:READPT$(I):IFPT$(I)<>"P"THEN300
290 READC$(I):FORJ=1TO9:READP(I,J):NEXTJ
300 NEXTI
310 FORI=1TO16:READCH$(I):NEXT:FORI=1TO16:READCC$(I):NEXT:GOTO390
320 PRINT"[154] [170][191] [191][146][180][170][183][183][183][180][170][191] [180][170][183][183][183][180][170][183][183][208][170][183][183][183][180][170] [207][183]"
322 PRINT" [170] [191][191][146] [180][170] [180][170] [191] [180][170] [180][170][175][175][186][170] [180][170] [204]"
324 PRINT" [170] [180][170] [180][170] [191] [180][170] [180][170] [170] [180][170] [207]"
330 PRINT" [170] [180][170][175][175][175][180][170] [191][180][170][175][175][175][180][170] [170][175][175][175][180][170][175][175][175] [204][175]"
339 KK=PT
350 PRINTTAB(19);"BY"
355 PRINT" TIM BORION AND SAL OEPER"
360 PRINT"HIT 'R' TO ROLL DICE AND 'T' FOR TRANSACTION MENU.":PRINT
370 PRINT"'0' CAN BE USED TO RETURN FROM MOST SUBROUTINES"
380 PRINT:PRINT"DEVELOPED PROPERTIES MAY NOT BE TRADED.":PRINT
385 PRINT"MODIFIED FOR 4 PLAYERS BY KEVIN KELLY":PRINT:RETURN
390 POKE54277,79:POKE54284,79:POKE54291,79
392 POKE54278,248:POKE54286,248:POKE54292,248
394 POKE54276,33:POKE54288,33:POKE54290,33
396 G(1)=54272:G(2)=54273:G(3)=54279:G(4)=54280:G(5)=54286:G(6)=54287
397 FORI=1TO6:POKEG(I),0:NEXT
398 POKE54296,15:IFPEEK(832)<>160THENGOSUB6370
399 IF RS<>1 THEN FORQQ=1TO4:PL(QQ)=1:NEXTQQ
400 GOSUB1320:GOSUB6470:FORQQ=4 TO1 STEP-1
401 IF PQ(QQ)<>0 OR PL(QQ)>40 THEN 404
402 POKED(PL(QQ),QQ-1),QQ+48
403 O(QQ)=D(PL(QQ),QQ-1)
404 NEXT
405 IF RS=1 THEN PT=SS:GOTO 450
410 PT=INT(RND(0)*4+1)
415 IF PQ(PT)<>0 THEN 410
450 MS$=""+N$(PT)+" STARTS"+"[146]"
460 X=RX+2:Y=RY+2:Z$=MS$:GOSUB1570:FORDE=1TO1500:NEXT:Z$=E$:GOSUB1570:GOTO680
470 DV=2:MF=0:JB=0
480 IFPL(PT)=41THEN590
490 JT(PT)=0
500 GOSUB1620:DF=1
510 IFDB=3THENSYSTN:GOSUB3150:SYSTT:GOSUB6470:GOTO620
520 FORM=1TODR:PL(PT)=PL(PT)+1
521 FOR QQ=1TO4
522 IF PQ(QQ)<>0 OR PL(QQ)>40THEN 525
524 POKED(PL(QQ),QQ-1),QQ+48
525 NEXTQQ
530 POKEO(PT),160:IFPL(PT)>40THENPL(PT)=PL(PT)-40:SYSTN:GOSUB1700:SYSTT
540 POKED(PL(PT),PT-1),48+PT
550 O(PT)=D(PL(PT),PT-1)
560 FORT=1TO50STEP6+PT:FORI=1TO6:POKEG(I),T:NEXT:NEXT
580 FORI=1TO6:POKEG(I),0:NEXT:NEXTM
581 FOR QQ=1TO4
582 IF PQ(QQ)<>0 OR PL(QQ)>40THEN 584
583 POKED(PL(QQ),QQ-1),QQ+48
584 NEXTQQ
590 POKED(PL(PT),PT-1),48+PT:GOSUB6470
595 IF PL(PT)=1THEN:SYSTN:GOSUB8000:SYSTT
600 SYSTN:GOSUB1770:SYSTT:GOSUB6470:IFM(PT)<0THENGOSUB6200:SYSTT
610 IFPL(PT)=11THENPOKED(41,PT-1),160:POKED(11,PT-1),48+PT
620 IFJBTHENJB=0:POKEO(PT),160:O(PT)=D(PL(PT),PT-1):GOTO520
630 IFMFTHENMF=0:POKEO(PT),160:O(PT)=D(PL(PT),PT-1):GOTO590
640 IFJETHENJE=0:POKEO(PT),160:O(PT)=D(PL(PT),PT-1):GOTO680
650 IFJFTHENJF=0:POKED(PL(PT),PT-1),48+PT:POKEO(PT),160:O(PT)=D(PL(PT),PT-1)
660 IFDBTHEN680
670 PT=PT+1:IFPT>4THENPT=1
671 IF PQ(PT)<>0THEN670
680 Z$=P$(PT):X=RX+2:Y=RY+1:GOSUB1570
690 Z$=RM$:X=RX+2:Y=RY+2:GOSUB1570
691 IF PQ<>0THENPOKED(PL(PQ),PQ-1),160:PQ=0
700 GETBC$:IFBC$<>""THEN700
710 GETA$:IFA$=""THEN710
720 IFA$="T"THENSYSTN:GOSUB4080:SYSTT:GOSUB6470:GOTO680
730 Z$=E$:X=RX:Y=RY:GOSUB1570
740 GOTO470
750 DATA1978,1938,1974,1973,1931,1930,1968,1967,1925,1924,1922,1921
760 DATA1959,1958,1956,1955,1953,1952,1950,1949,1944,1904
770 DATA1824,1825,1744,1745,1664,1665,1584,1585,1505,1506,1424,1425
780 DATA1346,1347,1264,1265,1184,1185,1104,1105
790 DATA1029,1030,1032,1033,1035,1036,1038,1039,1081,1082,1044,1045
800 DATA1047,1048,1130,1131,1053,1054,1096,1097
810 DATA1217,1218,1297,1298,1377,1378,1457,1458,1536,1537,1617,1618
820 DATA1697,1698,1777,1778,1857,1858,1906,1907
821 DATA1978,1938,1974,1973,1931,1930,1968,1967,1925,1924,1922,1921
822 DATA1959,1958,1956,1955,1953,1952,1950,1949,1944,1904
823 DATA1824,1825,1744,1745,1664,1665,1584,1585,1505,1506,1424,1425
824 DATA1346,1347,1264,1265,1184,1185,1104,1105
825 DATA1029,1030,1032,1033,1035,1036,1038,1039,1081,1082,1044,1045
826 DATA1047,1048,1130,1131,1053,1054,1096,1097
827 DATA1217,1218,1297,1298,1377,1378,1457,1458,1536,1537,1617,1618
828 DATA1697,1698,1777,1778,1857,1858,1906,1907
830 DATA">GO<[155]","[155]MEDITERRANEAN AVE[155]","[158]COMMUNITY CHEST[155]","[155]BALTIC AVE.[155]"
835 DATA"[154]INCOME TAX[155]"
840 DATA"[152]READING R.R.[155]","[159]ORIENTAL AVE.[155]","[150]CHANCE[155]","[159]VERMONT AVE.[155]"
845 DATA"[159]CONNECTICUT AVE.[155]"
850 DATA"[150]JUST VISITING[155]","[156]ST.CHARLES PLACE[155]","[153]ELECTRIC COMPANY[155]","[156]STATES AVE.[155]"
860 DATA"[156]VIRGINIA AVE.[155]","[152]PENNSYLVANIA R.R.[155]","[129]ST. JAMES PLACE[155]"
865 DATA"[158]COMMUNITY CHEST[155]"
870 DATA"[129]TENNESSEE AVE.[155]","[129]NEW YORK AVE.[155]","[149]FREE PARKING[155]","KENTUCKY AVE.[155]"
880 DATA"[150]CHANCE[155]","INDIANA AVE.[155]","ILLINOIS AVE.[155]","[152]B & O R.R.[155]"
885 DATA"[158]ATLANTIC AVE.[155]"
890 DATA"[158]VENTNOR AVE.[155]","[153]WATER WORKS[155]","[158]MARVIN GARDENS[155]","[150]GO[155] [154]TO[155] JAIL[155]"
895 DATA"PACIFIC AVE.[155]"
900 DATA"N. CAROLINA AVE.[155]","[158]COMMUNITY CHEST[155]","PENNSYLVANIA AVE.[155]"
905 DATA"[152]SHORT LINE R.R.[155]"
910 DATA"[150]CHANCE[155]","PARK PLACE[155]","[154]LUXURY TAX[155]","BOARDWALK[155]","[150]IN JAIL[155]"
920 DATAGO,P,PURPLE,60,2,10,30,90,160,250,30,50,CC,P,PURPLE,60,4,20,60,180,320
930 DATA450,30,50,IT,RR,P,LT. BLUE,100,6,30,90,270,400,550,50,50,CH,P,LT. BLUE
940 DATA 100,6,30,90,270,400,550,50,50,P,LT. BLUE,120,8,40,100,300,450,600,60,50
950 DATAJV,P,MAROON,140,10,50,150,450,625,750,70,100,U,P,MAROON,140,10,50,150,450
960 DATA625,750,70,100,P,MAROON,160,12,60,180,500,700,900,80,100,RR
970 DATAP,ORANGE,180,14,70,200,550,750,950,90,100,CC,P,ORANGE
980 DATA 180,14,70,200,550,750,950,90,100
990 DATAP,ORANGE,200,16,80,220,600,800,1000,100,100,FP,P,RED
1000 DATA 220,18,90,250,700,875
1010 DATA1050,110,150,CH,P,RED,220,18,90,250,700,875,1050,110,150,P,RED,240
1020 DATA 20,100,300
1030 DATA750,925,1100,120,150,RR,P,YELLOW,260,22,110,330,800,975,1150,130,150
1040 DATA P,YELLOW,260
1050 DATA22,110,330,800,975,1150,130,150,U,P,YELLOW,280,24,120,360,850,1025,1200
1060 DATA 140
1070 DATA150,GTJ,P,GREEN,300,26,130,390,900,1100,1275,150,200,P,GREEN
1080 DATA 300,26,130,390,900
1090 DATA1100,1275,150,200,CC,P,GREEN,320,28,150,450,1000,1200,1400
1100 DATA 160,200,RR,CH
1110 DATAP,DK. BLUE,350,35,175,500,1100,1300,1500,175,200,LT,P,DK. BLUE
1120 DATA 400,50,200,600,1400
1130 DATA1700,2000,200,200,IJ
1140 DATA PAY POOR TAX $15,GO DIRECTLY TO JAIL,ADVANCE TO GO(COLLECT $200)
1150 DATA YOUR BUILDING AND LOAN MATURES COLLECT $150
1160 DATA ADVANCE TOKEN TO NEAREST R.R. $ PAY OWNER TWICE RENT
1170 DATAADVANCE TO ILLINOIS AVE.,BANK PAYS YOU DIVIDEND OF $50
1180 DATAGET OUT OF JAIL FREE,PAY EACH PLAYER $50,ADVANCE TO ST. CHARLES PLACE
1190 DATATAKE A RIDE ON THE READING,GO BACK THREE SPACES,ADVANCE TO BOARDWALK
1200 DATAMAKE GENERAL REPAIRS $25 FOR EACH HOUSE$100 FOR EACH HOTEL
1210 DATA ADVANCE TOKEN TO NEAREST R.R. $ PAY OWNER TWICE RENT
1220 DATA ADVANCE TOKEN TO NEAREST UTILITY ROLL DICE & PAY 10*# SHOWN
1230 DATA GET OUT OF JAIL FREE,GO TO JAIL,ADVANCE TO GO(COLLECT $200)
1240 DATA FROM SALE OF STOCK YOU GET $45,COLLECT $50 FROM EVERY PLAYER
1250 DATA RECEIVE FOR SERVICES $25,PAY SCHOOL TAX OF $150,TAX REFUND COLLECT $20
1260 DATA ASSESSED FOR REPAIRS $40 PER HOUSE $115 PER HOTEL
1270 DATA YOU HAVE WON SECOND PRIZE IN A BEAUTY CONTEST COLLECT $10
1280 DATA YOU INHERIT $100,XMAS FUND MATURES COLLECT $100,PAY HOSPITAL $100
1290 DATA BANK ERROR IN YOUR FAVOR COLLECT $200,DOCTORS FEE PAY $50
1300 DATA LIFE INSURANCE MATURES COLLECT $100
1310 GOTO6360
1320 PRINT"[147][149] [160][155][165][160][160][165][160][160][165][160][160][165][160][160][152][191][191][191][155][165][160][160][165] [165][153]WW[155][165][160][160][150][165]GTJ[146]"
1330 PRINT"[149][160]FP[160][155][165][160][160][165][150]?[155][160][165][160][160][165][160][160][152][165][160][160][155][165][160][160][165][160] [165][153][176][177][155][165][160][160][154][165] [146]"
1340 PRINT"[149] [160]KY [155] [160]IN[160]IL [152]B&O[158] AT[165]VN[155][165][160][160][158]MG[160][165][197][215] [155][146]"
1350 PRINT"[163][163][163][129]N[155][207][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]P[155][163][163][163][146]"
1360 PRINT" [129]Y[155][165] [206][205] A[155][160] [146]"
1370 PRINT"[163][163][163][129]T[155][165] [158][206] [155][205] 1- N[155][163][163][163][146]"
1380 PRINT" [129]N[155][165][206][158]C C[155][206] C[155] [146]"
1390 PRINT"[163][163][163][163][165][205][158] [206][155] 2- [207][163][163][163][146]"
1400 PRINT"[158]CC[155] [165] [205][206] [158]CC[155] [146]"
1410 PRINT"[163][163][163][129]S[155][165] [164][164][164] [164][164][164] P[155][163][163][163][146]"
1420 PRINT" [129]J[155][165] [167] [155][165] [167] [155][165] N[155] [146]"
1430 PRINT"[152][191]PR[191][155][165] [167] [155][165] MONOPOLE[155] [167] [155][165] [167][152][191]SL[191][146]"
1440 PRINT"[191] [191][155][165] [167] [155][165] CBM-64[155] [167] [155][165] [167][152][191] [191][155][146]"
1450 PRINT"[163][163][163][156]V[155][165] [163][163][163] [163][163][163] [207][163][163][163][146]"
1460 PRINT" [156]A[155][165]3- [165][150]?[155] [146]"
1470 PRINT"[163][163][163][156]S[155][165] [206][205] P[155][163][163][163][146]"
1480 PRINT" [156]T[155][165]4- [150][206] [155][205] P[155] [146]"
1490 PRINT"[163][153]EC[155][163][165] [206][150]???[155][206] [154]TAX[155][163][146]"
1500 PRINT" [165] [205][150] [206][155] [165] [146]"
1510 PRINT"[163][163][163][156]S[155][165] [205][206] B[155][163][163][163][146]"
1520 PRINT" [156]C[155][165] W[155] [146]"
1530 PRINT"[150][163][155][207][163][163][159]CT [165]VT[155][207][163][163][159]OR [152][207]RR[155][207][163][163][146]BA [207][163][163][146]ME [207][163][163][163][146]"
1540 PRINT"[150] [155][165] [165] [165] [165][150]?[155][160][165][160][160][152][165][160][160][155][165][160][160][165][160][160][165] [165] [165]GO [146]"
1550 PRINT"[150] [163][163][163][155][165] [165] [165] [165] [152][191][191][191][154]TAX[155][165] [165][158]CC[155][165] [165]_[192] [146]"
1560 RETURN
1570 PRINT"[155]";LEFT$(CR$,X);LEFT$(CD$,Y);Z$;""
1580 RETURN
1590 DC$(1)=" [157][157][157] [209] [157][157][157] [146]":DC$(2)=" [209][157][157][157] [157][157][157][209] [146]"
1600 DC$(3)="[209] [157][157][157] [209] [157][157][157] [209][146]":DC$(4)="[209] [209][157][157][157] [157][157][157][209] [209][146]"
1610 DC$(5)="[209] [209][157][157][157] [209] [157][157][157][209] [209][146]":DC$(6)="[209] [209][157][157][157][209] [209][157][157][157][209] [209][146]":RETURN
1620 CT=0
1630 R1=INT(RND(1)*6)+1:R2=INT(RND(1)*6)+1:DR=R1+R2
1635 FORI=1TO6:POKEG(I),DR*10:NEXT
1640 PRINT"";LEFT$(CR$,X1);LEFT$(CD$,Y1);DC$(R1)
1650 PRINT"";LEFT$(CR$,X2);LEFT$(CD$,Y2);DC$(R2)
1655 FORI=1TO6:POKEG(I),0:NEXT
1660 CT=CT+1:IFCT<7THENFORDELAY=1TO75:NEXT:GOTO1630
1670 IFR1=R2THENDB=DB+1:GOTO1690
1680 DB=0
1690 RETURN
1700 PRINT"[147]":PRINT
1710 PRINT" COLLECT $200 AS YOU PASS [172][162][172][187][157][157][157][157][157][188][190][188][190][146]"
1720 M(PT)=M(PT)+200:PRINT:PRINT:PRINT
1730 PRINT"HIT ANY KEY TO CONTINUE[146]"
1740 GETW$:IFW$<>""THEN1740
1750 GETK$:IFK$=""THEN1750
1760 RETURN
1770 POKE198,0:PT$=PT$(PL(PT))
1780 IFPT$="P"THEN1900
1790 IFPT$="RR"THEN2380
1800 IFPT$="GO"THENRETURN
1810 IFPT$="U"THEN2700
1820 IFPT$="FP"THEN3010
1830 IFPT$="JV"THENRETURN
1840 IFPT$="GTJ"THEN3150
1850 IFPT$="IT"THEN3210
1860 IFPT$="LT"THEN3190
1870 IFPT$="CC"THEN3230
1880 IFPT$="CH"THEN3470
1890 IFPT$="IJ"THEN3880
1900 PRINT"[147]";TAB(15);"TITLE DEED"
1910 IFGFTHEN1950
1920 PRINT" PLAYER"PT
1930 PO=3-PT
1940 PL=PL(PT):P7=PT
1950 PRINTTAB(20-(LEN(PN$(PL))-1)/2)"";PN$(PL)"[146]"
1955 PRINTLEFT$(PN$(PL),1):QR=PEEK(646):POKE53280,QR:PRINT"[145][145]"
1960 PRINT
1970 PRINT" RENT $";P(PL,2)
1980 PRINT" WITH 1 HOUSE $";P(PL,3)
1990 PRINT" WITH 2 HOUSES ";P(PL,4)
2000 PRINT" WITH 3 HOUSES ";P(PL,5)
2010 PRINT" WITH 4 HOUSES ";P(PL,6)
2020 PRINT" WITH HOTEL $";P(PL,7)
2030 PRINT
2040 PRINT" MORTAGE VALUE $";P(PL,8)
2050 PRINT" HOUSES COST $";P(PL,9);"EACH"
2060 PRINT" HOTELS, $";P(PL,9);". PLUS 4 HOUSES"
2070 IFGFTHENPRINT:PRINT:GOSUB1730:POKE53280,0:RETURN
2080 PRINT:FORI=1TO41:IFC$(PL)=C$(I)ANDI<>PLTHENGOSUB2100
2090 NEXT:GOTO2120
2100 IFPS(I)THENPRINT" "PN$(I)" OWNED BY PLAYER #"PS(I):RETURN
2110 PRINT" "PN$(I)" STILL FOR SALE.":RETURN
2120 PRINT
2130 IFMG(PL)=1THENPRINT" MORTAGED FOR $"P(PL,8)
2140 PRINT" COST $";P(PL,1)
2150 IFPS(PL)=0THEN2200
2160 PRINT" OWNED[146] BY PLAYER"PS(PL):IFH(PL)THENPRINT"WITH";
2170 IFH(PL)<5THENPRINTH(PL)"HOUSES."
2180 IFH(PL)=5THENPRINT" A HOTEL"
2190 GOTO2250
2200 PRINT" YOU HAVE $";M(P7)
2210 PRINT" DO YOU WISH TO BUY THIS PROPERTY";:INPUT" [191][157][157][157]";A$:A$=LEFT$(A$,1)
2220 IFA$="N"THEN2310
2230 IFA$<>"Y"THENPRINT"[145][145]":GOTO2210
2240 PRINT" OK YOU BOUGHT ";PN$(PL)"":M(P7)=M(P7)-P(PL,1):PS(PL)=PT:GOTO2300
2250 OW=P(PL,H(PL)+2):IFPS(PL)=PTTHEN2300
2260 IFMG(PL)THEN2300
2270 P5=PO:P6=PS(PL):GOSUB2320:IFOATHENIFH(PL)=0THENOW=OW*2
2280 M(PT)=M(PT)-OW:M(PS(PL))=M(PS(PL))+OW:PRINT" YOU OWE $";OW
2300 GOSUB1730:POKE53280,0:RETURN
2310 GOSUB6040:GOTO2300
2320 MG=0:OA=0:PC=0:FORI=1TO41:IFC$(PL)=C$(I)ANDPS(I)=P5THENPC=PC+1:IFMG(I)THENMG=MG
2330 NEXT
2340 IFPC=2ANDC$(PL)="PURPLE"THENOA=1:RETURN
2350 IFPC=2ANDC$(PL)="DK. BLUE"THENOA=1:RETURN
2360 IFPC=3THENOA=1:RETURN
2370 RETURN
2380 PRINT"[147]":PL=PL(PT)
2390 PRINT"PLAYER"PT
2400 PRINT" [150][216][152] [172][146]"
2410 PRINT" [146]"
2420 PRINT" [206][149][215] [215]"
2430 PRINT
2440 PRINTTAB(20-LEN(PN$(PL))/2)"";PN$(PL)"[146]"
2442 POKE54276,129:POKE54288,17:POKE54290,17
2443 KO=129:FORT=1TO2:FORI=1TO6:POKEG(I),KO:NEXT:FORDL=1TO400:NEXT
2444 FORI=1TO6:POKEG(I),0:NEXT:FORDL=1TO60:NEXT:NEXT
2445 POKE54276,33:POKE54288,33:POKE54290,33
2450 PRINT:PRINT"RENT $25"
2460 PRINT"IF 2 R.R.'S ARE OWNED 50"
2470 PRINT"IF 3 R.R.'S ARE OWNED 100"
2480 PRINT"IF 4 R.R.'S ARE OWNED 200"
2490 PRINT
2500 PRINT"MORTAGE VALUE $100"
2510 PRINT:IFMG(PL)=1THENPRINT"MORTAGED FOR $100":GOTO2690
2520 PRINT"COST $200"
2530 PRINT:FORI=1TO41:IFPT$(I)="RR"THENGOSUB2550
2540 NEXT:GOTO2570
2550 IFPS(I)THENPRINTPN$(I)" OWNED BY PLAYER #";PS(I):RETURN
2560 PRINTPN$(I)" STILL FOR SALE.":RETURN
2570 IFPS(PL)THENPRINT"OWNED[146] BY PLAYER#";PS(PL):GOTO2650
2580 PRINT"YOU HAVE $"M(PT)
2590 PRINT"DO YOU WISH TO BUY IT";:INPUT" [191][157][157][157]";B$:B$=LEFT$(B$,1)
2600 IFB$="N"THENGOSUB6040:GOTO2690
2610 IFB$<>"Y"THENPRINT"[145][145]":GOTO2590
2620 M(PT)=M(PT)-200:PS(PL)=PT
2630 PRINT"OK YOU BOUGHT IT"
2640 GOTO2690
2650 OW=0:O7=0
2660 IFPS(PL)=PTTHEN2690
2670 OW=25:FORI=6TO36STEP10:IFPT$(I)="RR"ANDPS(I)=PS(PL)THENOW=OW*2
2680 NEXT:OW=OW/DV:PRINT"YOU OWE $";OW:M(PT)=M(PT)-OW:M(PS(PL))=M(PS(PL))+OW
2690 GOSUB1730:RETURN
2700 PRINT"[147]"
2710 PRINT"PLAYER"PT
2720 PRINT" [158][206][163][205] [152][215][209][215] "
2730 PRINT" [158][205][150]^[158][206] [152][171][192][177][192][192][192][201] "
2740 PRINT" [158][165][165] [152][171][192][192][192][192][201][200] "
2750 PRINT" [166] [173][189] ":PRINT
2760 PL=PL(PT)
2770 PRINTTAB(20-LEN(PN$(PL))/2)"";PN$(PL)"[146]"
2780 PRINT:PRINT"IF ONE 'UTILITY IS OWNED PAY 4 TIMES THEAMOUNT SHOWN ON DICE"
2790 PRINT
2800 PRINT"IF BOTH OWNED PAY 10 [214] AMOUNT ON DICE"
2810 D1=INT(RND(1)*6)+1:D2=INT(RND(1)*6)+1
2820 IFDFTHEND1=R1:D2=R2
2830 PRINT:PRINT"MORTAGE VALUE $75":PRINT
2840 IFMG(PL)=1THENPRINT"MORTAGED FOR $75":GOTO3000
2850 IFPS(42-PL)THENPRINTPN$(42-PL)" OWNED BY PLAYER"PS(42-PL):GOTO2870
2860 PRINTPN$(42-PL)" STILL FOR SALE."
2870 PRINT:IFPS(PL)THENPRINT"OWNED[146] BY PLAYER#";PS(PL):GOTO2950
2880 PRINT"YOU HAVE $"M(PT)
2890 INPUT"DO YOU WISH TO BUY IT [191][157][157][157]";B$:B$=LEFT$(B$,1)
2900 IFB$="N"THENGOSUB6040:GOTO3000
2910 IFB$<>"Y"THENPRINT"[145][145]":GOTO2890
2920 PRINT"OK YOU BOUGHT ";PN$(PL)""
2930 M(PT)=M(PT)-150
2940 PS(PL)=PT:GOTO3000
2950 IFPS(PL)=PTTHEN3000
2960 PRINT"DICE SHOW"D1"AND"D2"."
2970 MT=4:IFPS(13)=PS(PL)ANDPS(29)=PS(PL)THENMT=10
2980 IFDF=0THENMT=10
2990 OW=MT*(D1+D2):PRINT"YOU OWE $";OW:M(PT)=M(PT)-OW:M(PS(PL))=M(PS(PL))+OW
3000 MT=0:GOSUB1730:RETURN
3010 PRINT"[147]"
3020 PRINT" [129]FREE
3030 [153]" (null)LENLENLENLENLENRIGHT$"
3040 [153]" PEEK OPENORTAN^ LEFT$
3050 PRINT" [221] [159][173][192][189] [221]
3060 [153]" LEFT$ VERIFY(null)LENRIGHT$ PEEK
3070 PRINT" [213][192][189] [149][194][152][209][149][200] [173][192][201]
3080 [153]" (null) VERIFYMID$ASC(null) (null)
3090 PRINT" [173][192][152][168][192][192][192][192][192][152][168][192][189]
3100 [153]" PRINT#SPC( SPC(
3110 PRINT:PRINT" [129]PARKING":PRINT
3120 IFPF=0THENGOSUB1730:RETURN
3130 PRINT:PRINT" YOU GET THE FREE PARKING"
3140 PRINT" JACKPOT OF $"FP"!":M(PT)=M(PT)+FP:FP=0:PRINT:GOSUB1730:RETURN
3150 PRINT"[147]";TAB(15);"GO TO JAIL"
3160 IFDB=3THENPRINT:PRINT" FOR ROLLING DOUBLES 3 TIMES IN A ROW!":PRINT
3170 PRINTTAB(16);"[151][176][178][178][178][178][178][178][174]":FORI=1TO5:PRINTTAB(16);"[221][221][221][221][221][221][221][221]":NEXT
3175 PRINTTAB(16);"[173][177][177][177][177][177][177][189]":PRINT:PL(PT)=41:JF=1:DB=0
3180 FORKO=1TO3:FORT=60TO110STEP1.7:FORI=1TO6:POKEG(I),T:NEXT:NEXT
3182 FORDL=1TO10:NEXT
3183 FORT=110TO60STEP-1.7:FORI=1TO6:POKEG(I),T:NEXT:NEXT:NEXT
3184 FORI=1TO6:POKEG(I),0:NEXT
3185 PRINT"";:GOSUB1730:RETURN
3190 PRINT"[147]";TAB(15);"LUXURY TAX":PRINT:PRINTTAB(16);"PAY $75"
3200 PRINT:PRINT:PRINT:M(PT)=M(PT)-75:FP=FP+75:GOSUB1730:RETURN
3210 PRINT"[147]";TAB(15);"INCOME TAX":PRINT:PRINTTAB(16);"PAY $200"
3220 PRINT:PRINT:PRINT:M(PT)=M(PT)-200:FP=FP+200:GOSUB1730:RETURN
3230 CC=CC+1:IFCC>16THENCC=CC-16
3240 PO=3-PT:CC$=CC$(CC):IFCC=1ANDCJ(1)THENCC=CC+1:CC$=CC$(CC)
3250 PRINT"[147] [158]COMMUNITY CHEST":PRINTCC$""
3260 IFCC=1THENCJ(1)=PT
3270 IFCC=2THENGOSUB1730:GOTO3150
3280 IFCC=3THENPL(PT)=1:MF=1:GOSUB1730:GOSUB1700:RETURN
3290 IFCC=4THENM(PT)=M(PT)+45
3300 IF CC<>5THEN3310
3302 FOR QQ=1TO4
3303 IF QQ=PT THEN 3307
3304 IF PQ(QQ)<>0THEN3307
3305 M(PT)=M(PT)+50:M(QQ)=M(QQ)-50
3307 NEXT QQ
3310 IFCC=6THENM(PT)=M(PT)+25
3320 IFCC=7THENM(PT)=M(PT)-150:FP=FP+150
3330 IFCC=8THENM(PT)=M(PT)+20
3340 IFCC=9THENGOSUB3430
3350 IFCC=10THENM(PT)=M(PT)+10
3360 IFCC=11THENM(PT)=M(PT)+100
3370 IFCC=12THENM(PT)=M(PT)+100
3380 IFCC=13THENM(PT)=M(PT)-100
3390 IFCC=14THENM(PT)=M(PT)+200
3400 IFCC=15THENM(PT)=M(PT)-50
3410 IFCC=16THENM(PT)=M(PT)+100
3420 GOSUB1730:RETURN
3430 YP=0:FORI=1TO40
3440 IFPS(I)=(PT)ANDH(I)<5THENYP=YP+(40*H(I))
3450 IFPS(I)=(PT)ANDH(I)=5THENYP=YP+115
3460 NEXT:PRINT"YOU PAY $"YP:M(PT)=M(PT)-YP:FP=FP+YP:RETURN
3470 CH=CH+1:IFCH>16THENCH=CH-16
3480 PO=3-PT:CH$=CH$(CH):IFCH=8ANDCJ(2)THENCH=CH+1:CH$=CH$(CH)
3490 PRINT"[147] [150]? ? CHANCE ? ?":PRINTCH$""
3500 IFCH=1THENM(PT)=M(PT)-15:FP=FP+15
3510 IFCH=2THENGOSUB1730:GOTO3150
3520 IFCH=3THENPL(PT)=1:MF=1:GOSUB1730:GOSUB1700:RETURN
3530 IFCH=4THENM(PT)=M(PT)+150
3540 IFCH=5THENGOSUB3670:MF=1
3550 IFCH=6THENGOSUB3710:MF=1
3560 IFCH=7THENM(PT)=M(PT)+50
3570 IFCH=8THENCJ(2)=PT
3580 IF CH<>9THEN3590
3581 FOR QQ=1TO4
3582 IF QQ=PT OR PQ(QQ)<>0 THEN 3587
3584 M(PT)=M(PT)-50:M(QQ)=M(QQ)+50
3587 NEXT QQ
3590 IFCH=10THENGOSUB3730:MF=1
3600 IFCH=11THENGOSUB3750:MF=1
3610 IFCH=12THENPL(PT)=PL(PT)-3:MF=1
3620 IFCH=13THENGOSUB3770:MF=1
3630 IFCH=14THENGOSUB3790
3640 IFCH=15THENGOSUB3670:MF=1
3650 IFCH=16THENGOSUB3830:MF=1
3660 GOSUB1730:RETURN
3670 PL(PT)=PL(PT)+1:IFPL(PT)>40THENGOSUB6540:PL(PT)=PL(PT)-40
3680 IFPT$(PL(PT))="RR"THEN3700
3690 GOTO3670
3700 DV=1:RETURN
3710 IFPL(PT)>25THENGOSUB6540
3720 PL(PT)=25:RETURN
3730 IFPL(PT)>12THENGOSUB6540
3740 PL(PT)=12:RETURN
3750 IFPL(PT)>6THENGOSUB6540
3760 PL(PT)=6:RETURN
3770 PL(PT)=40:RETURN
3780 RETURN
3790 DF=0:YP=0:FORI=1TO40
3800 IFPS(I)=(PT)ANDH(I)<5THENYP=YP+(25*H(I))
3810 IFPS(I)=(PT)ANDH(I)=5THENYP=YP+100
3820 NEXT:PRINT"YOU PAY $"YP:M(PT)=M(PT)-YP:FP=FP=YP:RETURN
3830 PL(PT)=PL(PT)+1
3840 IFPL(PT)>40THENGOSUB6540:PL(PT)=PL(PT)-40
3850 IFPT$(PL(PT))="U"THEN3870
3860 GOTO3830
3870 MF=1:RETURN
3880 PRINT"[147]"
3890 JT(PT)=JT(PT)+1
3900 PRINT"PLAYER #"PT"IS IN JAIL"
3910 PRINT:PRINT"YOU HAVE BEEN IN"JT(PT)"TURNS"
3920 PRINT"YOU MAY: 1. PAY $50"
3930 PRINT" 2. USE A 'GET OUT OF JAIL FREE CARD."
3940 PRINT" 3. TRY TO ROLL DOUBLES."
3950 PRINT:INPUT"CHOICE";I:IFI<1ORI>3THEN3950
3960 IFI=1THENM(PT)=M(PT)-50:FP=FP+50:PL(PT)=11:GOSUB1730:JE=1:RETURN
3970 IFI=2ANDCJ(1)=PTTHENCJ(1)=0:PL(PT)=11:GOSUB1730:JE=1:RETURN
3980 IFI=2ANDCJ(2)=PTTHENCJ(2)=0:PL(PT)=11:GOSUB1730:JE=1:RETURN
3990 IFI=2THENPRINT"YOU DON'T HAVE A CARD":GOTO3950
4000 IFI=3THENGOSUB1620:IFDBTHEN4060
4010 PRINT"YOU DIDN'T ROLL DOUBLES."
4020 IFJT(PT)>2THENPRINT"YOU MUST PAY THE $50":M(PT)=M(PT)-50:PL(PT)=11:JB=1
4030 IFJT(PT)>2THENGOSUB1730:FP=FP+50:RETURN
4040 GOSUB1730:RETURN
4050 IFPL(PT)=11THENGOSUB1730:JE=1:RETURN
4060 PRINT"YOU MADE IT OUT!!!":PL(PT)=11:GOSUB1730:JB=1:DB=0:RETURN
4070 GOTO6200
4080 PRINT"[147]":IFPFTHENPRINT"MONEY IN FREE PARKING JACKPOT $";FP
4090 PRINT"PLAYER 1 HAS $";M(1):PRINT"PLAYER 2 HAS $";M(2)
4095 PRINT"PLAYER 3 HAS $";M(3):PRINT"PLAYER 4 HAS $";M(4)
4100 PRINT:PRINT"PLAYER";PT"UP."
4110 PRINT:PRINT:PRINTTAB(15);"OPTIONS"
4120 PRINT
4130 PRINT" R=REVIEW PROPERTIES"
4140 PRINT" L=LIST ALL PROPERTIES"
4150 PRINT" B=BUILD HOUSES/HOTELS"
4160 PRINT" S=SELL PROPERTIES TO OTHER PLAYER"
4170 PRINT" M=MORTAGE PROPERTIES(SELL HOUSES)"
4180 PRINT" D=DISPLAY TITLE DEEDS"
4190 PRINT" Q=RETURN TO GAME"
4200 PRINT" XX=SAVE GAME, PLAYER QUITS OR END GAME":PRINT
4210 INPUT"CHOICE [191][157][157][157]";C$
4220 IFC$="[191]"THEN4210
4230 IFC$="R"THENGOSUB4320
4240 IFC$="L"THENGOSUB4490
4250 IFC$="B"THENGOSUB4640
4260 IFC$="S"THENGOSUB5080
4270 IFC$="M"THENGOSUB5440
4280 IFC$="D"THENGOSUB6510
4290 IFC$="Q"THENRETURN
4300 IFC$="XX"THENGOSUB 6280
4310 GOTO4080
4320 INPUT"FOR WHICH PLAYER (1-4)";PN
4330 IFPN<1ORPN>4THEN4320
4332 IF PQ(PN)<>0THENPRINT:PRINT"PLAYER NOT CURRENTLY PLAYING!":PRINT:GOTO 4320
4335 RP=0:GOTO 4340:INPUT"LIST ON PRINTER?";KK$
4337 IF KK$="Y"THENRP=1:OPEN4,4:CMD4:GOTO4350
4340 PRINT"[147]"
4350 PRINTTAB(6)"PROPERTIES FOR PLAYER ";PN
4360 PRINT
4370 FORI=1TO40:PO$="":IFPS(I)=PNTHENPRINTPN$(I);
4380 IFPS(I)<>PNTHEN4450
4390 IFPT$(I)<>"P"THEN4430
4400 PRINTSPC(20-(LEN(PN$(I))-2));" -";:IFH(I)<5THENPO$=STR$(H(I))+" HS"
4410 IFH(I)=5THENPO$=" HOTEL[146]"
4420 PO$=PO$+"/$"+MID$(STR$(P(I,H(I)+2)),2)
4430 IFMG(I)=1THENPO$="- MORTAGED"
4440 PRINTPO$
4450 NEXT
4460 PRINT:IFCJ(1)=PNORCJ(2)=PNTHENPRINT"GET OUT OF JAIL FREE CARD."
4470 PRINT"PLAYER"PN"HAS $";M(PN)
4479 IF RP=1THENRP=0:PRINT#4:CLOSE4
4480 PRINT:GOSUB1730:RETURN
4490 LP=0:PRINT
4492 INPUT"LIST ON PRINTER";KK$
4494 IF KK$="Y"THEN LP=1:OPEN4,4:CMD4:GOTO4500
4499 PRINT"[147]"
4500 TT$="NAME OWNER/[157][157][157][157][157][157]#HOUSES"
4501 IF LP=1THEN TT$="NAME OWNER/#HOUSES":PRINT
4502 PRINT TT$
4503 IF LP=1THENPRINT" "
4510 FORK=1TO40:IFPT$(K)<>"P"ANDPT$(K)<>"RR"ANDPT$(K)<>"U"THEN4600
4515 IF LP=1THENKK$=MID$(PN$(K),2,LEN(PN$(K))):PRINT KK$;:GOTO4540
4520 PRINTPN$(K)"";TAB(21);
4530 PRINTTAB(33)
4540 P$=STR$(PS(K)):PP$=MID$(STR$(H(K)),2):IFH(K)>4THENPP$="H"
4550 IFPT$(K)<>"P"THENPP$="X"
4551 IF LP=1ANDMG(K)THENP$="MG":GOTO4570
4560 IFMG(K)THENPP$="MG[146]"
4570 P$=P$+" -"+PP$
4580 IFPS(K)=0THENP$=" NONE"
4585 IF LP=1THEN PRINT TAB(30-LEN(KK$));
4590 PRINTP$
4600 IFK=20ANDLP=0THEN:PRINT:GOSUB1730:PRINT"[147]":PRINTTT$
4610 NEXTK
4620 PRINT
4622 IF LP=1THENPRINT#4:CLOSE4:LP=0
4623 PRINT:GOSUB 1730
4630 RETURN
4640 PRINT"[147]"
4650 HO=0
4660 PRINT" ON WHICH GROUP":PRINTPG$
4670 PRINT
4680 INPUT"WHICH COLOR";C$
4690 FORI8=1TO41:IFC$=LEFT$(C$(I8),LEN(C$))THENPL=I8:C$=C$(I8):GOTO4720
4700 NEXTI8
4710 PRINT"ILLEGAL GROUP":GOTO4680
4720 P7=PT
4730 P5=P7:GOSUB2320:IFMGTHENOA=0
4740 IFOATHEN4770
4750 PRINT"SORRY YOU EITHER DON'T OWN ALL THE PROP-ERTY IN THAT GROUP OR SOME";
4760 PRINT" IS MORTAGED.":GOSUB1730:RETURN
4770 PRINT" PROPERTY NAME # OF HOUSES(5=HOTEL)"
4780 HS=0:FORI=PLTOPL+4:IFC$=C$(I)THENPRINTPN$(I)"";TAB(30);H(I):HS=HS+H(I)
4790 NEXT
4800 PRINT:PRINT"HOUSES FOR THIS GROUP COST $"P(PL,9)"EACH"
4810 PRINT"HOTELS COST $"P(PL,9)"+ 4 HOUSES OR $";(P(PL,9)*5)
4820 PRINT
4830 PRINT"YOU HAVE $"M(PT)
4840 PRINT"HOTELS AUTOMATICALLY ADDED AFTER 4TH HOUSE"
4850 PRINT"HOW MANY HOUSES DO YOU WANT TO BUY (MAX=";:MX=((5*PC)-HS):PRINTMX")"
4860 INPUTHN:IFHN>MXTHENGOTO4850
4870 H7=INT(HN/PC):H8=HN-(H7*PC)
4880 IFM(P7)<(HN*P(PL,9))THENPRINT"YOU DON'T HAVE ENOUGH MONEY!":GOTO4850
4890 IFHN=0THENPRINT"OK":GOSUB1730:RETURN
4900 M(P7)=M(P7)-(HN*P(PL,9)):FORE=PLTOPL+4:IFC$=C$(E)THENH(E)=H(E)+H7
4910 NEXT
4920 IFH8THEN4940
4930 GOTO5070
4940 PRINT"YOU HAVE"H8"HOUSES LEFT OVER"
4950 PRINT:F1=0:FORF=PLTOPL+4:IFC$=C$(F)THENF1=F1+1:PRINTF1,PN$(F);" "H(F)
4960 NEXT:PRINT:FORG=1TOH8
4970 PRINT"WHERE DO YOU WANT HOUSE #"G;:INPUTHL:IFHL=HOTHENPRINT"CAN'T":GOTO4970
4980 F2=0:F1=0:F9=0
4990 FORF=PLTOPL+3:IFC$=C$(F)THENF1=F1+1:IFF1=HLTHENF9=F
5000 NEXTF
5010 IFF9=0THENPRINT"NO SUCH NUMBER":GOTO4970
5020 H2=0:FORF=PLTOPL+3:IFC$=C$(F)THENIFH(F9)>H(F)THENH2=H2+1
5030 NEXT
5040 IFH2THENPRINT"ILLEGAL DISTRIBUTION OF HOUSES!":GOTO4970
5050 HO=HL:H(F9)=H(F9)+1
5060 NEXTG
5070 PRINT"DONE":GOSUB1730:RETURN
5080 INPUT"WHAT PLAYER HAS A PROPERTY TO SELL";P1
5090 IFP1=0THENGOSUB1730:RETURN
5091 TP=P1:GOSUB 7600:IFT1=1THEN5080
5092 INPUT"WHAT PLAYER IS BYING THE PROPERTY ";P2
5093 IF P2=0THENGOSUB1730:RETURN
5095 TP=P2:GOSUB7600:IFT1=1THEN5092
5096 IFP1=P2THENPRINT:PRINT"INVALID PLAYER #":PRINT:GOTO 5092
5110 PRINT"IS IT A PROPERTY";:INPUTQ$:IFLEFT$(Q$,1)="N"THEN5320
5120 PRINT"IN WHAT COLOR GROUP":PRINTPG$
5130 PRINT:INPUT"WHICH";C$
5140 FORI6=1TO41:IFC$=LEFT$(C$(I6),LEN(C$))THENPL=I6:C$=C$(I6):GOTO5170
5150 NEXTI6
5160 PRINT"ILLEGAL GROUP":GOTO5130
5170 PRINT"# PROPERTY";TAB(30);"OWNER"
5180 HO=0:CT=0:FORI=PLTOPL+4:IFC$=C$(I)THENCT=CT+1:PRINTCT" "PN$(I)"";TAB(35);PS(I)
5190 IFH(I)THENHO=1
5200 NEXT
5210 PRINT:PRINT"WHAT NUMBER DOES PLAYER"P1"WANT TO SELL"
5220 INPUTTP
5230 CT=0:FORI=PLTOPL+4:IFC$=C$(I)THENCT=CT+1:IFCT=TPTHENT4=I:FF=1
5240 NEXT
5250 IFFF=0THENPRINT"ILLEGAL NUMBER":GOTO5210
5260 IFPS(T4)<>P1THENPRINT"PLAYER #"P1"DOES NOT OWN IT.":GOTO5080
5270 IFHOTHENPRINT"YOU HAVE HOUSES ON THAT GROUP YOU CAN'T SELL IT.":GOTO5310
5280 INPUT "WHAT IS THE AGREED SELLING PRICE";SP
5290 M(P1)=M(P1)+SP:M(P2)=M(P2)-SP:PS(T4)=P2
5300 PRINT"PLAYER #"P2"BOUGHT "PN$(T4)"":PRINT"FOR $"SP
5310 PRINT:GOSUB1730:RETURN
5320 PRINT"PROPERTY";TAB(30);"OWNER"
5330 FORI=6TO36STEP10:N=N+1:PRINTN" "PN$(I)"";TAB(35);PS(I):NEXT:N=0
5340 PRINT" 5 "PN$(13)"";TAB(35);PS(13):PRINT" 6 "PN$(29)"";TAB(35);PS(29)
5350 INPUT"WHICH #";NM:IFNM=0THENRETURN
5360 IFNM<1ORNM>6THEN5350
5370 IFNM=5ANDPS(13)=P1THENSN=13:GOTO5410
5380 IFNM=6ANDPS(29)=P1THENSN=29:GOTO5410
5390 IFNM>0ANDNM<5THENSN=6+((NM-1)*10):IFPS(SN)=P1THENGOTO5410
5400 PRINT"YOU DON'T OWN IT.":GOTO5320
5410 INPUT"AGREED PRICE";SP
5420 M(P1)=M(P1)+SP:M(P2)=M(P2)-SP:PS(SN)=P2
5430 GOSUB1730:RETURN
5440 PRINT"[147]":PRINT" OPTIONS":PRINT"0 RETURN TO MAIN MENU":PRINT"1 MORTAGE PROPERTY"
5450 PRINT"2 MORTAGE RAILROAD":PRINT"3 MORTAGE UTILITY"
5460 PRINT"4 LIFT MORTAGE(AT 10% INTEREST)":PRINT"5 SELL HOUSES":PRINT
5470 INPUT"CHOICE";GG:IFGG<0ORGG>5THEN5470
5480 IFGG=0THENGOSUB1730:RETURN
5490 ONGGGOSUB5510,5740,5830,5910,6550
5500 GOTO5440
5510 PRINT:PRINT"ON WHICH GROUP IS THE PROPERTY TO BE":PRINT"MORTAGED LOCATED?":PRINTPG$
5520 PRINT:INPUT"COLOR GROUP";C$
5530 FORI6=1TO41:IFC$=LEFT$(C$(I6),LEN(C$))THENPL=I6:C$=C$(I6):GOTO5560
5540 NEXTI6
5550 PRINT"ILLEGAL GROUP":GOTO5520
5560 CM=0:FORI=PLTOPL+3:IFC$=C$(I)THENCM=CM+H(I)
5570 NEXT
5580 IFCMTHENPRINT"CAN'T MORTAGE PROPERTIES WITH HOUSES STILL ON THAT GROUP.":GOTO5730
5590 PRINT"# PROPERTY";TAB(25);"OWNER"
5600 CT=0:FORI=PLTOPL+4:IFC$<>C$(I)THEN5630
5610 CT=CT+1:PRINTCT" "PN$(I)"";TAB(27)PS(I);:PP$="":IFMG(I)THENPP$="MORTAGED"
5620 PRINTPP$
5630 NEXT
5640 PRINT:PRINT"WHAT NUMBER IS TO BE MORTAGED.";:INPUTTP
5650 IFTP=0THENGOSUB1730:RETURN
5660 CT=0:FORI=PLTOPL+4:IFC$=C$(I)THENCT=CT+1:IFCT=TPTHENT4=I:FF=1
5670 NEXT
5680 IFFF=0THENPRINT"ILLEGAL NUMBER":GOTO5640
5690 IFPS(T4)<>PTTHENPRINT"YOU DON'T OWN IT.":GOSUB1730:GOTO5440
5700 IFMG(T4)=1THENPRINT"ALREADY MORTAGED":GOTO5640
5710 PRINT:PRINT"OK":MG(T4)=1
5720 PRINT"YOU GOT $"P(T4,8)"FOR YOUR MORTAGE.":M(PT)=M(PT)+P(T4,8)
5730 GOSUB1730:RETURN
5740 RC=0:FORI=6TO36STEP10:IFPT$(I)="RR"THENRC=RC+1:PRINTRC" "PN$(I)" PLR.#"PS(I)
5750 NEXT
5760 INPUT"WHICH #";RG
5770 IFRG<1ORRG>4THEN5760
5780 RG=6+((RG-1)*10)
5790 IFPS(RG)<>PTTHENPRINT"YOU DON'T OWN IT.":GOSUB1730:GOTO5440
5800 IFMG(RG)=1THENPRINT"ALREADY MORTAGED.":GOSUB1730:GOTO5440
5810 MG(RG)=1:PRINT"YOU GET $100 FOR MORTAGE.":M(PT)=M(PT)+100
5820 GOSUB1730:RETURN
5830 U(1)=13:U(2)=29
5840 FORI=1TO2:PRINTI" "PN$(U(I))"":NEXT
5850 INPUT"WHICH?";UM
5860 IFUM<1ORUM>2THEN5850
5870 IFPS(U(UM))<>PTTHENPRINT"YOU DON'T OWN IT.":GOSUB1730:GOTO5440
5880 IFMG(U(UM))=1THENPRINT"ALREADY MORTAGED.":GOSUB1730:GOTO5440
5890 MG(U(UM))=1:PRINT"YOU GET $75 FOR MORTAGE.":M(PT)=M(PT)+75
5900 GOSUB1730:RETURN
5910 PRINT:PRINT"THESE ARE THE PROPERTIES THAT ARE UNDER A MORTAGE."
5920 ML=0:FORI=1TO41:IFPS(I)=(PT)ANDMG(I)=1THENML=ML+1:PRINTML" "PN$(I)""
5930 NEXT
5940 IFML=0THENPRINT"YOU HAVE NO MORTAGED PROPERTIES.":GOSUB1730:RETURN
5950 PRINT:INPUT"WHICH MORTAGE DO YOU WAN'T TO LIFT";LF
5960 IFLF<1ORLF>MLTHENPRINT"ILLEGAL":GOTO5950
5970 ML=0:FORI=1TO41:IFPS(I)=(PT)ANDMG(I)=1THENML=ML+1:IFML=LFTHENFT=I
5980 NEXT
5990 PRINT"THE MORTAGE IS FOR $"P(FT,8)
6000 PRINT"YOU MUST PAY $";:PY=P(FT,8)*1.10:PRINTPY
6010 IFPY>M(PT)THENPRINT"YOU DON'T HAVE THE MONEY.":GOSUB1730:RETURN
6020 M(PT)=M(PT)-PY:MG(FT)=0
6030 GOSUB1730:RETURN
6040 IFAFTHEN6060
6050 RETURN
6070 Y.
6110 IFBD=0THENON(AC>1)+2GOTO6140,6090
6190 PRINT:PRINTPN$(PL)" HAS NOT BEEN PURCHASED.":RETURN
6200 PRINT"[147]":PRINT"PLAYER #"PT"IS BROKE!!"
6210 PRINT"IF YOU CAN'T RAISE $"ABS(M(PT))"THEN YOU ARE OUT OF THE GAME."
6220 PRINT"DO NOT HIT 'Q' (RETURN TO GAME) UNTIL YOU FINISH TRYING TO";
6230 PRINT" RAISE MONEY"
6240 GOSUB1730:GOSUB4080
6250 IFM(PT)>=0THENRETURN
6260 PRINT"YOU ARE BANKRUPT!!!":GOTO6297
6280 PRINT"[147]":PRINT:PRINT"OPTIONS:":PRINT
6281 PRINT"0 - RETURN TO MENU":PRINT"1 - CURRENT PLAYER QUITS"
6282 PRINT"2 - END THE GAME"
6283 PRINT"3 - SAVE GAME":PRINT
6284 INPUT"ENTER OPTION ";KK
6285 IF KK<0 OR KK>3 THEN 6280
6287 IF KK=0 THEN RETURN
6290 IF KK=2 THEN 6325
6291 IF KK=3 THEN 8100
6295 PRINT:PRINT"PLAYER #";PT;" QUITS!!"
6297 PRINT"ALL THE PLAYER'S PROPERY IS RETURNED TO THE BANK!"
6299 PQ(PT)=1:M(PT)=0:PQ=PT
6301 KK=0
6303 FOR QQ=1 TO 4:IF PQ(QQ)=0 THEN KK=KK+1:ZZ=QQ
6304 NEXTQQ
6305 IF KK=1 THEN PRINT:PRINT"PLAYER #";ZZ;" WINS!!":END
6307 GOSUB 7000
6315 PT=PT+1:IFPT>4 THEN PT=1
6320 RETURN
6325 REM "END GAME"
6326 FORZZ=1TO4:IFPQ(ZZ)=0THENKK=ZZ:GOSUB7300
6327 NEXTZZ
6329 PRINT:PRINT"THE FINAL STANDINGS:"
6330 PRINT"PLAYER 1 = $";M(1)
6340 PRINT"PLAYER 2 = $";M(2)
6341 PRINT"PLAYER 3 = $";M(3)
6342 PRINT"PLAYER 4 = $";M(4)
6350 PRINT
6360 POKE54296,0:FORI=1TO6:POKEG(I),0:END
6370 FORJ=832TO939
6380 READI:POKEJ,I:NEXT
6390 DATA 160,0,185,0,4,153,0,192,185,0,5,153,0,193,185,0,6,153,0
6400 DATA 194,185,0,7,153,0,195,185,0,216,153,0,196,185,0,217,153,0
6410 DATA 197,185,0,218,153,0,198,185
6420 DATA 0,219,153,0,199,200,208,205,96,160,0,185,0,192,153,0,4,185,0,193,153
6430 DATA 0,5,185,0,194,153,0,6,185,0,195,153,0,7,185,0,196,153,0,216,185,0,197
6440 DATA 153,0,217,185,0,198,153,0,218,185,0,199,153,0,219,200,208,205,96
6460 RETURN
6470 FORP4=1TO4
6472 KK$=""
6474 IF PQ(P4)=0 THEN KK$=PN$(PL(P4))
6476 IF PQ(P4)=1 THEN KK$=">QUIT<"
6478 IF PQ(P4)=2 THEN KK$=">NOT PLAYING<"
6480 Y$=""+KK$+LEFT$(" ",17-(LEN(KK$)-2))+"[146]"
6490 MN$="$"+MID$(STR$(M(P4)),2)+" [146]":X=13:Y=2*P4+3:Z$=Y$
6491 IF P4>2THEN Y=Y+5:X=07
6492 GOSUB 1570
6500 Y=Y+1:Z$=MN$:GOSUB1570:NEXT:RETURN
6510 PRINT"DISPLAY DEEDS FOR WHICH COLOR GROUP:":PRINTPG$:INPUTC$:PRINT
6520 P3=PL:FORI=1TO41:IFC$=LEFT$(C$(I),LEN(C$))THENGF=1:PL=I:GOSUB1900:GF=0
6530 NEXT:PL=P3:RETURN
6540 M(PT)=M(PT)+200:PRINT"COLLECTED $200":RETURN
6550 PRINT"ON WHICH COLOR GROUP:":PRINTPG$:INPUTC$
6560 PL=0:FORI=41TO1STEP-1:IFC$=LEFT$(C$(I),LEN(C$))THENPL=I:C$=C$(I)
6570 NEXTI:IFPLTHEN6590
6580 PRINT"ILLEGAL GROUP":GOTO6550
6590 DO=0:HN=0:FORI=PLTOPL+3:IFPS(I)<>(PT)ANDC$=C$(I)THENDO=1
6600 IFC$=C$(I)THENHN=HN+H(I)
6610 NEXT
6620 IFDO=1ORHN=0THENPRINT"YOU DON'T OWN HOUSES ON THESE PROPERTIES":GOSUB1730:RETURN
6630 PRINT"# PROPERTY";TAB(25);"HOUSES(5=HOTEL)"
6640 CT=0:FORI=PLTOPL+3:IFC$=C$(I)THENCT=CT+1:PRINTCT" "PN$(I)"";TAB(27)H(I)
6650 NEXT
6660 INPUT"WANT TO REMOVE ALL THESE HOUSES";A$:IFLEFT$(A$,1)="Y"THEN6800
6670 PRINT:INPUT"WHAT # TO REMOVE A HOUSE FROM.";TP
6680 IFTP=0THEN RETURN
6690 CT=0:FORI=PLTOPL+3:IFC$=C$(I)THENCT=CT+1:IFCT=TPTHENT4=I:FF=1
6700 NEXT
6710 IFFF=0THENPRINT"ILLEGAL NUMBER":GOTO6670
6720 IFH(T4)=0THENPRINT"NO HOUSES THERE.":GOTO6670
6730 NN=0:NH=H(T4):FORI=PLTOPL+3:IFH(I)>NHTHENNN=1
6740 NEXT
6750 IFNNTHENPRINT"YOU CAN'T REMOVE THAT HOUSE.":GOTO6670
6760 PRINT:PRINT"OK.":H(T4)=H(T4)-1
6770 HM=P(PL,9)/2
6780 PRINT"YOU GOT $"HM"FOR YOUR HOUSE":M(PT)=M(PT)+HM
6790 GOSUB1730:GOTO5440
6800 HM=0:FORI=PLTOPL+3:IFC$=C$(I)THENHM=HM+(P(PL,9)/2)*H(I):H(I)=0
6810 NEXT:PRINT"YOU GOT $"HM"FOR YOUR HOUSES":M(PT)=M(PT)+HM:GOTO6790
7000 REM "RETURN PLAYER'S PROP. TO BANK"
7010 FOR KK=1TO40
7030 IF PS(KK)<>PT THEN 7190
7040 PS(KK)=0:H(KK)=0:MG(KK)=0
7190 NEXT KK
7195 GOSUB 1730
7200 RETURN
7300 REM "SELL ALL PLAYERS HOUSES "
7305 PRINT:PRINT"NOW LIQUIDATING PLAYER #";KK;" ASSETS!"
7307 TT=0:T1=0
7310 FOR I=1 TO 40
7311 PRINT".";
7320 C$=C$(I)
7330 DO=0:HN=0:FORQQ=ITOI+3:IFPS(I)<>(KK)ANDC$=C$(I)THENDO=1
7340 IFC$=C$(I)THENHN=HN+H(I):NEXT
7350 IFDO=1ORHN=0THEN 7400
7360 HM=0:FORQQ=ITOI+4:IFC$=C$(I)THENHM=HM+(P(QQ,9)/2)*H(I):H(I)=0
7368 NEXT QQ
7370 M(KK)=M(KK)+HM:TT=TT+HM
7400 IF DO=1 THEN 7500
7410 HM=0
7420 IF C$=C$(I)ANDPS(I)=KK THENHM=HM+P(I,8)
7440 M(KK)=M(KK)+HM:T1=T1+HM
7500 NEXT I
7510 PRINT:PRINT"TOTAL FOR HOUSES =";TT:
7520 PRINT"TOTAL MORTAGED PROPRETY VALUE =";T1:RETURN
7600 REM "TEST PLAYER #[160]INPUT"
7601 T1=0
7610 IF TP<1 OR TP>4 THEN PRINT:PRINT"INVALID PLAYER #":PRINT:T1=1:RETURN
7620 IF PQ(TP)<>0 THEN PRINT:PRINT"PLAYER NOT CURRENTL PLAYING!":PRINT:T1=1
7630 RETURN
8000 PRINT"[147]YOU LANDED ON GO!!"
8010 PRINT"COLLECT AN EXTRA $200"
8020 PRINT:GOSUB 1730
8025 M(PT)=M(PT)+200
8030 RETURN
8100 REM "SAVE EXISTING GAME"
8110 PRINT"[147]":PRINT
8120 KK$=""
8130 PRINT"ENTER FILE NAME - OR 0 TO RETURN TO MENU "
8131 INPUT KK$
8135 IF KK$=""THEN 8130
8137 IF KK$="0" THEN 6280
8140 IF LEN(KK$)<17 THEN 8200
8150 PRINT:PRINT"FILE NAME TO LONG!!!":GOTO 8130
8200 REM "OPEN WORK FILE"
8210 OPEN2,8,1,"0:"+KK$+",S,W"
8250 PRINT:PRINT"NOW SAVING GAME - PLEASE WAIT"
8252 PRINT#2,PF;CHR$(13)
8255 PRINT#2,FP;CHR$(13)
8260 PRINT#2,PT;CHR$(13)
8400 FOR QQ=1 TO 42:PRINT#2,PS(QQ);CHR$(13):NEXTQQ
8410 FOR QQ=1 TO 42:PRINT#2,H(QQ);CHR$(13):NEXT QQ
8420 FOR QQ=1 TO 42:PRINT#2,MG(QQ);CHR$(13):NEXTQQ
8440 FOR QQ=1 TO 4:PRINT#2,PL(QQ);CHR$(13):NEXTQQ
8450 FOR QQ=1 TO 4:PRINT#2,O(QQ);CHR$(13):NEXTQQ
8460 FOR QQ=1 TO 4:PRINT#2,JT(QQ);CHR$(13):NEXTQQ
8465 FOR QQ=1 TO 4:PRINT#2,M(QQ);CHR$(13):NEXTQQ
8470 FOR QQ=1 TO 4:PRINT#2,CJ(QQ);CHR$(13):NEXTQQ
8480 FOR QQ=1 TO 4:PRINT#2,N$(QQ);CHR$(13):NEXTQQ
8485 FORQQ=1TO4:PRINT#2,PQ(QQ);CHR$(13):NEXTQQ
8490 CLOSE 2
8492 OPEN15,8,15:INPUT#15,Q$,Q1$,Q2$,Q3$
8493 CLOSE15
8494 IF Q$="00" THEN 8600
8495 PRINT:PRINT"ERROR ON OPEN OF SAVE FILE"
8496 PRINT"ERROR # =";Q$
8497 PRINT"MESSAGE =";Q1$:PRINT
8500 IF Q$<>"63"THEN 8120
8510 PRINT"PURGE OLD SAVE FILE";
8520 INPUT K1$
8530 IF K1$<>"Y"AND K1$<>"N"THEN PRINT:PRINT"ANSWER Y OR N":PRINT:GOTO 8510
8540 IF K1$="N"THEN 8120
8550 OPEN2,8,1,"@0:"+KK$+",S,W"
8560 GOTO 8250
8600 PRINT"THE GAME IS SAVED!!!"
8610 END
9100 REM "RESTART A SAVED GAME"
9110 PRINT"[147]":PRINT
9120 KK$=""
9130 PRINT"ENTER FILE NAME - OR 0 TO CANCEL"
9132 INPUT KK$
9135 IF KK$=""THEN 9130
9137 IF KK$="0" THEN RETURN
9140 IF LEN(KK$)<17 THEN 9200
9150 PRINT:PRINT"FILE NAME TO LONG!!!":GOTO 9130
9200 REM "OPEN WORK FILE"
9210 OPEN2,8,2,"0:"+KK$+",S,R"
9250 PRINT:PRINT"NOW RESTORING GAME - PLEASE WAIT"
9252 INPUT#2,PF
9255 INPUT#2,FP
9260 INPUT#2,SS
9340 FOR QQ=1TO42
9400 FOR QQ=1 TO 42:INPUT#2,PS(QQ):NEXTQQ
9410 FOR QQ=1 TO 42:INPUT#2,H(QQ):NEXT QQ
9420 FOR QQ=1 TO 42:INPUT#2,MG(QQ):NEXTQQ
9440 FOR QQ=1 TO 4:INPUT#2,PL(QQ):NEXTQQ
9450 FOR QQ=1 TO 4:INPUT#2,O(QQ):NEXTQQ
9460 FOR QQ=1 TO 4:INPUT#2,JT(QQ):NEXTQQ
9465 FOR QQ=1 TO 4:INPUT#2,M(QQ):NEXTQQ
9470 FOR QQ=1 TO 4:INPUT#2,CJ(QQ):NEXTQQ
9480 FOR QQ=1 TO 4:INPUT#2,N$(QQ):NEXTQQ
9485 FOR QQ=1 TO 4:INPUT#2,PQ(QQ):NEXTQQ
9490 CLOSE 2
9491 OPEN15,8,15
9492 INPUT#15,Q$,Q1$,Q2$,Q3$
9493 CLOSE15
9494 IF Q$="00" THEN 9500
9495 PRINT:PRINT"ERROR ON OPEN OF SAVE FILE"
9496 PRINT"ERROR # =";Q$
9497 PRINT"MESSAGE =";Q1$:PRINT
9498 GOTO 9120
9500 PRINT"THE GAME IS RESTORED!"
9510 RS=1
9520 PRINT:PRINT"THE FOLLOWING WERE PLAYING:"
9530 FOR QQ=1 TO 4
9540 IF PQ(QQ)=0THEN PRINT"#";QQ;N$(QQ)
9550 NEXT QQ
9560 PRINT:PRINT"THERE WAS $";FP;"IN FREE PARKING!"
9570 PRINT:GOSUB1730
9580 RETURN